home *** CD-ROM | disk | FTP | other *** search
- /* este script graba la pantalla del spectrum como IFF sin compresión */
-
- address command
-
- if ~show(ports,ZXAM_REXX) then do
- requestchoice 'title "ZXAM Script error..." body "No encuentro el puerto del emulador!!" gadgets "AARGH!"'
- exit 0
- end
-
- /* Usamos el requester del emulador para pedir nombre del fichero */
-
- cajon="" /* aqui puedes meter el path que uses para pantallas */
-
- oldcajon=zxamactloadpath() /* guardamos el path del requester */
- oldpattern=zxamactpattern() /* guardamos el pattern del requester */
- zxampattern('(#?.iff|#?.pic)') /* filtro para mostrar solo pantallas */
-
- nombre=zxamsaverequester('Nombre para grabar el IFF...',cajon)
-
- zxampattern(oldpattern) /* recuperamos el pattern */
- zxamloadpath(oldcajon) /* recuperamos el path */
-
- if nombre='' then do
- exit /* selección cancelada */
- end
-
- /* Abrimos el fichero */
-
- if ~OPEN('fichero',nombre,'Write') then exit 0
-
- oldname=zxamactname() /* guardamos nombre y formato */
- oldformat=zxamactformat()
-
- zxamnameformat(' (GRABANDO PANTALLA IFF)','')
-
- /* cabecera identificadora. indica tamaño TODO menos 'FORM' */
- dummy=writech('fichero','FORM')
- dummy=writech('fichero','000060a8'x) /* tamaño total */
- dummy=writech('fichero','ILBM')
-
- /* chunk ANNO */
- dummy=writech('fichero','ANNO')
- dummy=writech('fichero','00000033'x) /* tamaño 51 caracteres */
- dummy=writech('fichero','Saved by ZXAM Spectrum Emulator AGA (by Toni Pomar)')
- dummy=writech('fichero','00'x) /* pad para alinear */
-
- /* chunk BMHD, o sea, bloque indicador de tamaño página */
- dummy=writech('fichero','BMHD')
- dummy=writech('fichero','00000014'x) /* tamaño 20 */
- dummy=writech('fichero','0100'x) /* ancho */
- dummy=writech('fichero','00c0'x) /* alto */
- dummy=writech('fichero','0000'x) /* pos x */
- dummy=writech('fichero','0000'x) /* pos y */
- dummy=writech('fichero','04'x) /* nro bitplanos */
- dummy=writech('fichero','00'x) /* masking */
- dummy=writech('fichero','00'x) /* compression */
- dummy=writech('fichero','00'x) /* Pad1 */
- dummy=writech('fichero','0000'x) /* color transparente */
- dummy=writech('fichero','2c2c'x) /* aspect 44:44 */
- dummy=writech('fichero','0140'x) /* ancho página fuente (320) */
- dummy=writech('fichero','0100'x) /* alto página fuente (256) */
-
- /* chunk CAMG, o sea, modo de pantalla (PAL:Baja resolución) */
- dummy=writech('fichero','CAMG')
- dummy=writech('fichero','00000004'x) /* tamaño 4 */
- dummy=writech('fichero','00000000'x) /* 00021000 = PAL:Baja resolución */
-
- /* chunk CMAP, o sea, mapa de colores */
-
- dummy=writech('fichero','CMAP')
- dummy=writech('fichero','00000030'x) /* tamaño 48 (16 colores*3 bytes) */
-
- /* color del borde */
- /* El color (0 a 7) es el índice para la tabla de colores */
- /* que creamos en forma de cadena MUY larga */
- dummy=writech('fichero',x2c(substr('000000000099990000990099009900009999999900999999',(zxamgetreg(bor)*6)+1,6)))
-
- dummy=writech('fichero','000099'x) /* color 1 */
- dummy=writech('fichero','990000'x) /* color 2 */
- dummy=writech('fichero','990099'x) /* color 3 */
- dummy=writech('fichero','009900'x) /* color 4 */
- dummy=writech('fichero','009999'x) /* color 5 */
- dummy=writech('fichero','999900'x) /* color 6 */
- dummy=writech('fichero','999999'x) /* color 7 */
- dummy=writech('fichero','000000'x) /* color 8 */
- dummy=writech('fichero','0000aa'x) /* color 9 */
- dummy=writech('fichero','bb0000'x) /* color 10 */
- dummy=writech('fichero','cc00cc'x) /* color 11 */
- dummy=writech('fichero','00cc00'x) /* color 12 */
- dummy=writech('fichero','00dddd'x) /* color 13 */
- dummy=writech('fichero','eeee00'x) /* color 14 */
- dummy=writech('fichero','ffffff'x) /* color 15 */
-
-
- /* chunk BODY, o sea, bitplanos en formato entrelazado */
-
- dummy=writech('fichero','BODY')
- dummy=writech('fichero','00006000'x) /* tamaño 6144*4 (4 bpls de 256*192) */
-
- /* usamos una funcion especial del emulador para sacar la pantalla en 4 bitplanos */
-
- dummy=writech('fichero',zxamgetscr())
-
- dummy=close('fichero')
-
- if oldname=='' then
- zxamclearnameformat()
- else
- zxamnameformat(oldname,oldformat)
-
- exit
-